Formal approach to guarantee the correctness of compiler optimization using temporal logic Department of Mathematical and Computing Sciences
نویسنده
چکیده
Optimization is a very important phase of compilation. Depending on the circumstances, it can improve the performance of programs by double-digit percentages. It is essential that the compiler optimizer is implemented so that it does not change the semantics of programs it is applied to. However, many optimizations are too complex to o er such correctness. Guaranteeing the correctness of an optimization of a real program is still an unresolved issue. In this thesis, We propose two techniques to address this problem. One technique involves a Java-compiler optimizer that uses temporal logic and the second involves a compiler-optimizer veri er for the existing COINS (COmpiler INfraStructure) compiler, again using temporal logic. The Javacompiler optimizer analyzes a Java program using a type of temporal logic and optimizes the program according to the results of this analysis. The compiler-optimizer veri er checks whether optimizations implemented for normal program languages such as C or Java have been executed correctly by using temporal logic. we use a temporal logic called CTL-FV, a type of CTL (Computational Tree Logic) that uses free variables (FV) in the formulas and can handle past and future temporal operators. Several research works have analyzed and optimized programs using temporal logic. However, no evaluation of the optimization time or execution time of these implementations has been undertaken for any real programming language until now. In our Java-compiler optimizer, We present a system that generates a Java optimizer, based on CTL-FV temporal logic, from our original domain-speci cation language. This language includes conditions for optimization and rewrite rules that will be applied when the conditions are satis ed. The condition part can express typical optimization rules very naturally and concisely, and the optimizers that are generated run e ciently. By adding rewriting conditions to allow for temporary variables and
منابع مشابه
Verifying Optimizations for Concurrent Programs
While program correctness for compiled languages depends fundamentally on compiler correctness, compiler optimizations are not usually formally verified due to the effort involved, particularly in the presence of concurrency. In this paper, we present a framework for stating and reasoning about compiler optimizations and transformations on programs in the presence of relaxed memory models. The ...
متن کاملA Framework for Formal Verification of Compiler Optimizations
In this article, we describe a framework for formally verifying the correctness of compiler optimizations. We begin by giving formal semantics to a variation of the TRANS language [6], which is designed to express optimizations as transformations on control-flow graphs using temporal logic side conditions. We then formalize the idea of correctness of a TRANS optimization, and prove general lemm...
متن کاملIndirect Adaptive Interval Type-2 Fuzzy PI Sliding Mode Control for a Class of Uncertain Nonlinear Systems
Controller design remains an elusive and challenging problem foruncertain nonlinear dynamics. Interval type-2 fuzzy logic systems (IT2FLS) incomparison with type-1 fuzzy logic systems claim to effectively handle systemuncertainties especially in the presence of disturbances and noises, but lack aformal mechanism to guarantee performance. In contrast, adaptive sliding modecontrol (ASMC) provides...
متن کاملApplications of Fuzzy Program Graph in Symbolic Checking of Fuzzy Flip-Flops
All practical digital circuits are usually a mixture of combinational and sequential logic. Flip–flops are essential to sequential logic therefore fuzzy flip–flops are considered to be among the most essential topics of fuzzy digital circuit. The concept of fuzzy digital circuit is among the most interesting applications of fuzzy sets and logic due to the fact that if there has to be an ultimat...
متن کاملTranslation and Run - Time Validation of Optimized Code 1 , 2
The paper presents approaches to the validation of optimizing compilers. The emphasis is on aggressive and architecture-targeted optimizations which try to obtain the highest performance from modern architectures, in particular EPIC-like microprocessors. Rather than verify the compiler, the approach of translation validation performs a validation check after every run of the compiler, producing...
متن کامل